Excel VBA Parts Collection Home Excel Reference Manual DownLoad My Profile
Menu Next Links Excel Function Manual Myself BBS


マクロの自動記録

 





マクロの自動記録機能


1 マクロとVBA

 Macro(マクロ)とは、日常的に繰り返し行う処理を記録しておいて、自動実行するためのプログラムをいいます。

 VBA(Visual Basic For Applications Edition)とは、マクロを記録するためのプログラム言語で、Visual Basic(VB)を基礎にMicrosoft Application(Excel,Access,Wordなど)用のマクロ言語として開発され、それぞれのアプリケーションに添付されています。

2 マクロの自動記録機能について

 VBAを覚えるには、マクロの自動記録機能を使ってマクロを作成し、作成されたVBAコードの意味を調べるのが最も近道です。マクロの自動記録とは、Excelで行なった操作内容を実行手順通りに自動的に記録する機能のことを言います。

 新しいマクロを記録すると、Visual Basic により新しいマクロ モジュール(マクロを保存するシート)が作成され、通常は、作業を行なったブックに添付して保存します。保存されたマクロを実行すると、記録した内容と同じ処理を自動的に繰り返すことができます。

 マクロを作成したり使用するには、Excelでセキュリティーレベルを「中」または「低」にしておく必要があります。
  (1) [ツール] メニューの [マクロ] →「セキュリティ」を選択します。
     (Excel2002では[ツール] メニューの「オプション」を選択)
  (2) [セキュリティ] タブをクリックします。
  (3) [セキュリティ レベル] タブをクリックし、使用するセキュリティレベルを選択します。


 マクロの自動記録によるマクロ作成手順は概ね次のとおりです。
  (1) マクロの名前を付け保存場所を指定する
  (2) マクロに登録する処理をExcelで実行する
  (3) 処理終了ボタンにより記録を終了する





3 マクロの自動記録による操作の登録

 では、選択したセル範囲のセルの色を黄色にするマクロを例題として、マクロの自動記録機能を使ってみましょう。

 通常は、下記の(1)から(3)までの処理を実行すればいいのですが、この例題では、マクロ実行時にセルの着色範囲を自由に設定できるようにするため、あらかじめセル範囲を選択しておいてからマクロの自動記録機能を実行します。
 まず、適当なセル範囲を選択した状態で、下記の(1)から(3)までの処理を行います。

 


(1) マクロの名前を付け保存場所を指定する
 1 メニューで「ツール」「マクロ(M)」「新しいマクロの記録(R)」を選択します。
 2 「マクロの記録」ダイアログボックス(下図)が表示されたら次の指定を行います。


  2-1 「マクロ名(M)」
 入力ボックスには最初に「Macro1」と表示されていますので、これをマクロの処理内容がわかるような名前に変更します。ここでは、「Cell_Color」とします。
  2-2 「ショートカットキー(K)」
 キーボードのキーを押すことによってマクロを実行させるためのキーを割り当てることができる機能です。ここでは省略します。
  2-3 「マクロの保存先(I)」
 作成されたマクロをどこに保存するかを指定します。保存先には、「作業中のブック」「個人用マクロブック」「新しいブック」があり、入力ボックスをクリックすると候補が表示されます。ここでは「作業中のブック」を選択します。
  2-4 「説明(D)」
 マクロの内容、使い方などの説明を書きます。入力した結果は、作成されたマクロに表示されます。
  2-5 「OK」ボタン
 上記の全ての指定を完了したら、「OK」ボタンをクリックします。

(2) マクロに登録する処理をExcelで実行する
 ここからExcelで行う操作がマクロに記録されます。
 例題では、すでにセルの背景色を変更するセル範囲が選択されていますので、ここでは色の指定だけを行います。Excelの「塗りつぶしの色」ツールバーの▼ボタンをクリックしてカラーパレットを表示し、黄色をクリックします。これでExcelでの操作は完了です。


(3) 「処理終了」ボタンによりマクロの記録を終了する
 マクロに記録するExcelでの操作がすべて完了したら、「記録終了」ボタンの四角い部分をクリックします。これにより、今まで実行した結果がマクロとして記録されます。






マクロの実行


 記録したマクロの実行は、下記により行います。 なお、この方法ではメニューを使用しますが、次項で説明するようにマクロ実行ボタンを作成して、それをクリックすることにより実行することもできます。

 Excelのメニューを利用してマクロを実行する場合は、メニューの「ツール(T)」「マクロ(M)」「マクロ(M)」を選択して、「マクロ」ダイアログボックスの「マクロ名(M)」一覧の中から実行するマクロ名を選択し、「実行(R)」ボタンをクリックします。


 前項の例題で作成したマクロを実行するには、まず背景色を設定する範囲を選択してからマクロを実行します。セルA2:B3の範囲に背景色を設定するときは次の手順でマクロを実行します。

 まず、マクロを実行する範囲を選択します。
 次に、メニューによりマクロ名を指定してマクロを実行します。 

 マクロを実行すると、予め選択した任意の範囲のセルに背景色が設定されます。





マクロ実行ボタンの作成

 マクロボタンの作成は、一般的には「コントロール」と呼ばれるボタンを利用します。
 コントロールとは、ワークシートやVBAで作成する「フォーム」に配置するボタンなどの部品のようなもので、データの表示や入力、ボタンをクリックしてマクロを実行したりすることができます。
 Excel には、フォーム ツールバーのコントロールとActiveX コントロールがあります。

 また、オートシェイプで作成した図形にマクロを登録して、図形をクリックしたときにマクロを実行することもできます。

1 フォーム ツールバーのコントロールにマクロを登録する

 「フォーム」 ツールバーのコントロールは、 Excel のワークシートで使用するために用意されています。コントロールには既存のマクロを登録することも、新しいマクロを記述または記録することもできます。マクロの登録手順は次のとおりです。

(1) ボタンの作成
     左図が「フォーム」 ツールバーです。「ボタン」(赤丸で囲った部分)を使ってコントロールをワークシート上に作成します。
1. コントロールを追加するワークシートをクリックします。 
2. メニューの「表示」  「ツールバー 」「フォーム」 をクリックします。
3. 「ボタン」コントロール(左図の赤丸部分)をクリックしてから、ワークシート上でコントロール設定範囲をドラッグして必要なサイズにします。

ドラッグした範囲(図の上部分)に図の下部分のようなコントロールが作成されます。ボタンには、最初「ボタン1」の文字が表示されています。


(2) ボタンの文字などの編集
 文字などの編集・・・コントロールの文字を変更するときは、コントロールをマウスの右ボタンでクリックしてショートカットメニューの「テキストの編集」を選択すると文字の入力・修正ができるようになります。

 また、ショートカットメニューで「コントロールの書式設定」を選択するとダイアログボックスが表示され、「フォント」「配置」「サイズ」などの編集を行うことができます。
 
 移動・拡大・縮小・・・コントロールの位置を移動させたり、大きさを変更するときは、コントロールをマウスの右ボタンでクリックしてからもう一度クリックするとコントロールが下図のようになっています。



 コントロールの移動を行うときは、この状態でコントロールの周囲にマウスを近づけて、マウスポインタの形が移動モードに変わってからマウスを移動位置までずらします。

 コントロールの拡大・縮小を行うときは、この状態でマウスを小さい四角に近づけて、マウスポインタが両矢印の形に変わったらマウスをずらすことにより拡大・縮小を行います。

 コントロールの編集が終了したときは、コントロール領域以外のワークシートのどこかのセルをクリックします。下図は編集結果です。



(3) マクロの登録
 コントロールをマウスの右ボタンでクリックし、ショートカット メニューの [マクロの登録] をクリックして、登録するマクロを選択します。 





2 ActiveX コントロールを追加する

 ActiveX コントロールは作業を自動化するマクロを実行するコントロールで、ActiveX コントロールをワークシートに追加する場合、コントロールのクリック時に実行されるマクロを割り当てる代わりに、そのコントロールがクリックされたときに実行させるマクロ コードをVBAで記述します。

(1) ボタンの作成
 

 

 
   左図が「コントロールツールボックス」 です。「コマンドボタン」(赤丸で囲った部分)を使ってコントロールをワークシート上に作成します。
 青丸で囲った部分がデザインモードの切り替えボタンで、周囲が白っぽく凹んでいる状態がコントロールを編集できる状態(デザインモード)です。左図は、左がデザインモード。右がデザインの終了モード。
1. ActiveX コントロールを追加するワークシートを開きます。 
2. メニューの「表示」「ツールバー」「コントロール ツールボックス」をクリックします。 
3. 「コントロール ツールボックス」が表示されたら、追加するコントロールのボタン(左図の赤丸部分)をクリックします。 
4. ワークシート上でコントロール設定範囲をドラッグしてボタンを必要なサイズにします。

(2) 配置位置の移動、ボタンの大きさの調節
 コントロールの編集を行うときは、メニューの「表示」「ツールバー」「コントロール ツールボックス」をクリックして、コントロール ツールボックスをデザインモードにします。

 コントロールの位置を移動させたり、大きさを変更するときは、コントロールをクリックするとコントロールが下図のようになっています。



 コントロールの移動を行うときは、この状態でコントロール上にマウスを置いて、マウスポインタが移動モードに変わってからマウスを移動位置までずらします。

 コントロールの拡大・縮小を行うときは、この状態でマウスを小さい四角に近づけて、マウスポインタが両矢印の形に変わったらマウスをずらすことにより拡大・縮小を行います。

(3) ボタンの文字や背景などの編集
 コントロールに表示されている文字や背景色などを変更するときは、コントロールをマウスの右ボタンでクリックし、ショートカット メニューの[プロパティ] をクリックすると、「プロパティウインドウ」が表示されます。

 プロパティとは、ボタン(オブジェクト)の構成要素の属性をいいます。プロパティウインドウの左側の列にある項目が「プロパティ名」、右側の列がそのプロパティの「値」です。
 プロパティの値は、何も指定しない場合、既定値が適用されます。下図は、プロパティを指定して編集を行った結果です。



 プロパティの各項目の意味を調べるには、プロパティ名をクリックしてからキーボードの「F1」キーを押すと、そのプロパティの内容を説明するヘルプ画面が表示されます。下図はコマンドボタンで使用するプロパティ一覧とその大まかな内容です。

 デザイン モードを終了して ActiveX コントロールを使用できるようにするには、 「デザインモードの終了)」ボタンをクリックします。  

プロパティ 概               要
(オブジェクト名) コントロールの名前
Accelerator コントロールのアクセス キー
AoutoLoad ブックを開いたとき自動的にOLEオブジェクトを読み込むかどうか
AoutoSize サイズを表示内容の大きさに合わせて、自動的に調整するかどうか
BackColor ボタンの背景色
BackStyle 背景の透明・不透明の選択
Caption ボタンの文字
Enabled ボタンがクリックされたときに応答するかどうか
Font 文字フォント
ForeColor 文字色
Height ボタンの高さ
Left 画面左端からの位置
Locked コントロールを編集可能にするかどうかを
MouseIcon オブジェクトに割り当てるユーザー定義のアイコン
MousePointer ボタンの上にマウスを置いたときのマウス ポインタの形状
Picture 画像の有無
PicturePosition 画像の位置
Placement セルとコントロールとの接続方法
PrintObject シート印刷時にコントロールも印刷するかどうか
Shadow ボタンの影の有無
TakeFocusOnClick コントロールがクリックされたときに、フォーカスを取得できるかどうか
Top 画面上端からの位置
Visible ボタンの表示・非表示
Width ボタンの横幅
WordWrap 文字列の長さに応じて、コントロールの高さまたは幅を広げるかどうか
(注) 背景色が黄色の行は、上図のボタンを編集したときに指定した項目で、その他は既定値を使用しています。

(4) コントロールボタン編集のプロパティ設定の具体例
 上表の黄色の行のプロパティの設定変更を行うことにより、コントロールの書式設定を行います。
 (下の左図のボタンを右図のように編集します。)

   

 まず、コントロールをマウスの右ボタンでクリックし、ショートカット メニューの[プロパティ] をクリックして「プロパティウインドウ」を表示します。

1

ボタンの背景色の設定
  (1) 「BackColor」プロパティの「値」欄をクリック。表示された▼ボタンをクリック。
  (2) 「パレット」パネルをクリック。色パターンで指定する背景色のボタンをクリック。

2

表示する文字の変更
  (1) 「Caption」プロパティの「値」欄をクリック。表示されている「CommandButton1」を消去。
  (2) 「セルの背景色設定」という文字を入力する。

3

文字フォントの設定
  (1) 「Font」プロパティの「値」欄をクリックして、表示された「・・・・」ボタンをクリック。
  (2) 「フォント」パネルで、「フォント名」「スタイル」「サイズ」等を変更する。

4

文字色の設定
  (1) 「ForeColor」プロパティの「値」欄をクリック。表示された▼ボタンをクリック。
  (2) 「パレット」パネルをクリック。色パターンで指定する文字色のボタンをクリック。

5

ボタンに影を設定
  (1) 「Shadow」プロパティの「値」欄をクリック。表示された▼ボタンをクリック。
  (2) 表示された値の候補の「True」をクリック。

(5) マクロの登録
 コントロールをマウスの右ボタンでクリックし、ショートカット メニューの [コードの表示] をクリックすると、コードウインドウに下図のコードが自働的に作成されています。

 これはボタンが貼り付けられているワークシートに付属するモジュールシートに作成されたコードで、ボタン(CommandButton1)がクリックされたときに実行されるマクロ(これを「イベントプロシージャ」といいます。)です。

 ただし、ボタン作成時点では、プロシージャ名(「Private Sub CommandButton1_Click() 」の部分)とプロシージャの終了のためのコード(「End Sub」 の部分)しか作成されていないため、何の処理も行われません。

 ボタンがクリックされたときに何らかの処理を実行させるには、「この部分に処理を記述する」のところに既存のマクロを呼び出すコードを記述するか(下図「例1」)、新しくVBAにより処理内容を記述する(下図「例2」)必要があります。


 例1 は、既存のマクロを利用する方法で、マクロコードの本文にマクロの自動記録機能によって標準モジュールに作成された「Cell_Color」というプロシージャ名が記述されていますが、これは、「Cell_Color」という名のプロシージャを実行しなさい、という意味です。

 例2 は、VBAにより新しくマクロを記述する方法で、「Cell_Color」プロシージャの本文部分と同じ内容のコードをVBAで記述したものです。

(6) エクセル画面に戻る
 マクロの記述が終了したら、ボタンのデザインモードをオフにして、[ファイル] メニューの [終了して Microsoft Excel へ戻る] をクリックします。 

 




3 オートシェイプにマクロを登録する

 オートシェイプで作成した図形にもマクロを登録することができます。登録方法は至って簡単で、図形を作成後、図形の外周の付近を右クリックし、ショートカット メニューの [マクロの登録] を選択して、必要なマクロを選択します。








マクロ編集画面を見る

 マクロの自動記録機能を使用して作成されたマクロコードは、「標準モジュール」というシートに記録されています。これを見るには、「Visual Basic Editor」という編集画面を開く必要があり、操作方法は次のとおりです。

 Excelのメニューで「ツール」「マクロ」「Visual Basic Editor」(VBE)を選択します。


 上図が編集画面です。画面の左側にある「Module1」と書かれたところをダブルクリックすると、マクロの自動記録機能で記録されたモジュールがコードウインドウに表示されてコードを見ることができます。

 下図は、「Module1」を開いて、コードを表示したものです。なお、コードの右に緑色で書かれている文字はコードの説明文で、後から私が書き加えたものです。






VBEツールバーの表示


 「Visual Basic Editor」(VBA編集画面)を開くためのツールバーをExcelの画面上に表示しておくと、ボタンをクリックするだけで「Visual Basic Editor」の作業を行うことができます。表示方法は至って簡単です。

1. Excelのメニューで「ツール」「ユーザー設定」を選択します。
2. 「ユーザー設定」ダイアログボックスが表示されますので、「コマンド」パネルをクリックします。
3. 「分類」欄の項目の中の「ツール」をクリックして、「コマンド」欄にある「Visual Basic Editor」のボタンをExcelのツールバー領域の配置したい位置までドラッグします。
( 「デザイン モード」ボタンを表示したいときは、「分類」欄の「コントロールツールボックス」の項目をクリックして、「コマンド」欄の「デザイン モード」ボタンをドラッグします。)
4. 「閉じる」ボタンをクリックします。
.

 






楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル